package com.ktjiaoyu.utils.fastjson2;

import com.alibaba.fastjson2.JSONWriter;
import com.alibaba.fastjson2.filter.PropertyPreFilter;

import java.util.Set;

/**
 * @return 13141
 * 2025/7/7
 * 09:32
 */
public class FastJson2SensitivePropFilter implements PropertyPreFilter {
//    通过构造器注入需要排除的属性集合
    public FastJson2SensitivePropFilter(Set<String> excludes) {
        this.excludes = excludes;
    }
    private Set<String> excludes;
//    处理字段，返回 true 表示字段需要序列化，返回 false 表示不需要
    @Override
    public boolean process(JSONWriter jsonWriter, Object o, String s) {
        if (excludes == null) {
//            没有排除的属性，直接允许
            return true;
        }
        // 不包含在 excludes 中的属性才需要序列化
        boolean isNeed = !excludes.contains(s);
        return isNeed;
    }
}
